/**
 * @file modes.hpp
 *
 * @date 22/12/2011
 * @author Tales 
 *
 * Armazena os modos disponíveis
 */

#ifndef MODES_HPP_
#define MODES_HPP_

#include <cstdlib>

namespace yep
{
using namespace std;


class ConsoleModeBase;

namespace modes
{
/**
 * Retorna a Quantidade de Modes disponíveis
 * @return a contagem de Modes, excluindo DrawMode.
 */
size_t getCount();

/**
 * Obtém o Mode selecionado
 * @param index um número x, onde 0 <= x < getCount()
 * @return Uma referencia ao Mode desejado.
 */
ConsoleModeBase & get(size_t index);

/**
 * Torna o Mode no mode atual;
 * @param index
 */
void chooseMode(size_t index);
} // namespace modes

} // namespace yep

#endif /* MODES_HPP_ */
